package net.zjitc.servlet.region;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @Author 赵静静
 * @Date 2023/5/25 15:17
 *///默认都使用doget方法
@WebServlet(name = "regionA",urlPatterns = "/regionAServlet")
public class AServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doPost(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("a servlet..");
        response.setContentType("text/html;charset=utf-8");
        //request域中设置值
        request.setAttribute("name","zhaojingjing-1");
        response.getWriter().write("test aaaaaaaaaa");
        //请求转发需要先等到一个dispatcher对象，再由此对象调用forword（）方法转发
        RequestDispatcher dispatcher = request.getRequestDispatcher("/regionBServlet");
        //请求转发
        //dispatcher.forward(request,response);
        //请求包含
        dispatcher.include(request,response);

    }

    /**
     * 请求转发：当请求给A时，A可将任务转发给B处理，由B响应
     * 请求包含：当请求给A时，A可将任务包含给B处理，由A和B共同响应
     * 注意：
     *      请求转发和请求包含是浏览器发送的一次请求，后台涉及多个servlet，一次响应，
     *      地址栏的请求地址不变。
     *
     * request域：可以通过setAttribute()设置值，通过getAttribute()获取
     * request的生命周期：一次完整的请求与响应
     * ServletContext:生命周期。。
     * Session:会话
     */
}
